home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
551-575
/
disk_562
/
intuisup
/
editor
/
source.lzh
/
edit1.c
< prev
next >
Wrap
C/C++ Source or Header
|
1991-10-25
|
32KB
|
819 lines
/*************************************
* *
* Editor v1.0 *
* by Torsten Jürgeleit in 08/91 *
* *
* Edit part 1 *
* *
*************************************/
/* Includes */
#include "includes.h"
#include "defines.h"
#include "imports.h"
#include "protos.h"
/* Defines for edit gadgets */
#define EDIT_GADGET_XOFFSET (EDIT_GADGET4_LEFT_EDGE - EDIT_GADGET1_LEFT_EDGE - 3 * EDIT_GADGET1_WIDTH) / 3
#define EDIT_GADGET1_TYPE GADGET_DATA_TYPE_BUTTON
#define EDIT_GADGET1_FLAGS GADGET_DATA_FLAG_HOT_KEY
#define EDIT_GADGET1_LEFT_EDGE 10
#define EDIT_GADGET1_TOP_EDGE (EDITOR_WINDOW_HEIGHT - EDIT_GADGET1_HEIGHT - 5)
#define EDIT_GADGET1_WIDTH ((7 + 2) * 8)
#define EDIT_GADGET1_HEIGHT 15
#define EDIT_GADGET1_TEXT "_Ok"
#define EDIT_GADGET1_TEXT_ATTR &topaz80_attr
#define EDIT_GADGET2_TYPE GADGET_DATA_TYPE_BUTTON
#define EDIT_GADGET2_FLAGS GADGET_DATA_FLAG_HOT_KEY
#define EDIT_GADGET2_LEFT_EDGE (EDIT_GADGET1_LEFT_EDGE + EDIT_GADGET1_WIDTH + EDIT_GADGET_XOFFSET)
#define EDIT_GADGET2_TOP_EDGE (EDITOR_WINDOW_HEIGHT - EDIT_GADGET2_HEIGHT - 5)
#define EDIT_GADGET2_WIDTH EDIT_GADGET1_WIDTH
#define EDIT_GADGET2_HEIGHT EDIT_GADGET1_HEIGHT
#define EDIT_GADGET2_TEXT "_Default"
#define EDIT_GADGET2_TEXT_ATTR &topaz80_attr
#define EDIT_GADGET3_TYPE GADGET_DATA_TYPE_BUTTON
#define EDIT_GADGET3_FLAGS GADGET_DATA_FLAG_HOT_KEY
#define EDIT_GADGET3_LEFT_EDGE (EDIT_GADGET4_LEFT_EDGE - EDIT_GADGET3_WIDTH - EDIT_GADGET_XOFFSET)
#define EDIT_GADGET3_TOP_EDGE (EDITOR_WINDOW_HEIGHT - EDIT_GADGET3_HEIGHT - 5)
#define EDIT_GADGET3_WIDTH EDIT_GADGET1_WIDTH
#define EDIT_GADGET3_HEIGHT EDIT_GADGET1_HEIGHT
#define EDIT_GADGET3_TEXT "_Switch"
#define EDIT_GADGET3_TEXT_ATTR &topaz80_attr
#define EDIT_GADGET4_TYPE GADGET_DATA_TYPE_BUTTON
#define EDIT_GADGET4_FLAGS GADGET_DATA_FLAG_HOT_KEY
#define EDIT_GADGET4_LEFT_EDGE (EDITOR_WINDOW_WIDTH - EDIT_GADGET4_WIDTH - 10)
#define EDIT_GADGET4_TOP_EDGE (EDITOR_WINDOW_HEIGHT - EDIT_GADGET4_HEIGHT - 5)
#define EDIT_GADGET4_WIDTH EDIT_GADGET1_WIDTH
#define EDIT_GADGET4_HEIGHT EDIT_GADGET1_HEIGHT
#define EDIT_GADGET4_TEXT "_Cancel"
#define EDIT_GADGET4_TEXT_ATTR &topaz80_attr
/* Statics for edit gadgets */
STATIC struct GadgetData edit_gadget_data[] = {
{
EDIT_GADGET1_TYPE, /* gd_Type */
EDIT_GADGET1_FLAGS, /* gd_Flags */
EDIT_GADGET1_LEFT_EDGE, /* gd_LeftEdge */
EDIT_GADGET1_TOP_EDGE, /* gd_TopEdge */
EDIT_GADGET1_WIDTH, /* gd_Width */
EDIT_GADGET1_HEIGHT, /* gd_Height */
EDIT_GADGET1_TEXT, /* *gd_Text */
EDIT_GADGET1_TEXT_ATTR, /* *gd_TextAttr */
{ 0, 0, 0 }
}, {
EDIT_GADGET2_TYPE, /* gd_Type */
EDIT_GADGET2_FLAGS, /* gd_Flags */
EDIT_GADGET2_LEFT_EDGE, /* gd_LeftEdge */
EDIT_GADGET2_TOP_EDGE, /* gd_TopEdge */
EDIT_GADGET2_WIDTH, /* gd_Width */
EDIT_GADGET2_HEIGHT, /* gd_Height */
EDIT_GADGET2_TEXT, /* *gd_Text */
EDIT_GADGET2_TEXT_ATTR, /* *gd_TextAttr */
{ 0, 0, 0 }
}, {
EDIT_GADGET3_TYPE, /* gd_Type */
EDIT_GADGET3_FLAGS, /* gd_Flags */
EDIT_GADGET3_LEFT_EDGE, /* gd_LeftEdge */
EDIT_GADGET3_TOP_EDGE, /* gd_TopEdge */
EDIT_GADGET3_WIDTH, /* gd_Width */
EDIT_GADGET3_HEIGHT, /* gd_Height */
EDIT_GADGET3_TEXT, /* *gd_Text */
EDIT_GADGET3_TEXT_ATTR, /* *gd_TextAttr */
{ 0, 0, 0 }
}, {
EDIT_GADGET4_TYPE, /* gd_Type */
EDIT_GADGET4_FLAGS, /* gd_Flags */
EDIT_GADGET4_LEFT_EDGE, /* gd_LeftEdge */
EDIT_GADGET4_TOP_EDGE, /* gd_TopEdge */
EDIT_GADGET4_WIDTH, /* gd_Width */
EDIT_GADGET4_HEIGHT, /* gd_Height */
EDIT_GADGET4_TEXT, /* *gd_Text */
EDIT_GADGET4_TEXT_ATTR, /* *gd_TextAttr */
{ 0, 0, 0 }
}, {
INTUISUP_DATA_END /* mark end of gadget data array */
}
};
/* Defines for border data */
#define BORDER_GADGET1_TYPE GADGET_DATA_TYPE_STRING
#define BORDER_GADGET1_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
#define BORDER_GADGET1_LEFT_EDGE (10 + (4 + 1) * 8)
#define BORDER_GADGET1_TOP_EDGE 30
#define BORDER_GADGET1_WIDTH 100
#define BORDER_GADGET1_HEIGHT 12
#define BORDER_GADGET1_TEXT "_Name"
#define BORDER_GADGET1_TEXT_ATTR &topaz80_attr
#define BORDER_GADGET1_INPUT_LEN MAX_TEMPLATE_NAME_LEN
#define BORDER_GADGET1_INPUT_ACTIVATE ((ULONG)BORDER_GADGET_NAME << 16 | BORDER_GADGET_NAME)
#define BORDER_GADGET1_INPUT_DEFAULT NULL
#define BORDER_GADGET2_TYPE GADGET_DATA_TYPE_CYCLE
#define BORDER_GADGET2_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_LEFT)
#define BORDER_GADGET2_TEXT "_Type"
#define BORDER_GADGET2_LEFT_EDGE BORDER_GADGET1_LEFT_EDGE
#define BORDER_GADGET2_TOP_EDGE (BORDER_GADGET1_TOP_EDGE + BORDER_GADGET1_HEIGHT + 10)
#define BORDER_GADGET2_WIDTH (20 + (11 + 2) * 8)
#define BORDER_GADGET2_HEIGHT 15
#define BORDER_GADGET2_TEXT_ATTR &topaz80_attr
#define BORDER_GADGET2_ACTIVE 0
#define BORDER_GADGET2_TEXT_ARRAY &border_type_text_array[0]
/* Statics for edit gadgets */
STATIC BYTE *border_type_text_array[] = {
"Box 1 - Out", "Box 1 - In", "Box 2 - Out", "Box 2 - In", NULL
};
STATIC struct GadgetData border_gadget_data[] = {
{
BORDER_GADGET1_TYPE, /* gd_Type */
BORDER_GADGET1_FLAGS, /* gd_Flags */
BORDER_GADGET1_LEFT_EDGE, /* gd_LeftEdge */
BORDER_GADGET1_TOP_EDGE, /* gd_TopEdge */
BORDER_GADGET1_WIDTH, /* gd_Width */
BORDER_GADGET1_HEIGHT, /* gd_Height */
BORDER_GADGET1_TEXT, /* *gd_Text */
BORDER_GADGET1_TEXT_ATTR, /* *gd_TextAttr */
{
BORDER_GADGET1_INPUT_LEN, /* gd_InputLen */
BORDER_GADGET1_INPUT_ACTIVATE, /* gd_InputActivate */
BORDER_GADGET1_INPUT_DEFAULT /* gd_InputDefault */
}
}, {
BORDER_GADGET2_TYPE, /* gd_Type */
BORDER_GADGET2_FLAGS, /* gd_Flags */
BORDER_GADGET2_LEFT_EDGE, /* gd_LeftEdge */
BORDER_GADGET2_TOP_EDGE, /* gd_TopEdge */
BORDER_GADGET2_WIDTH, /* gd_Width */
BORDER_GADGET2_HEIGHT, /* gd_Height */
BORDER_GADGET2_TEXT, /* *gd_Text */
BORDER_GADGET2_TEXT_ATTR, /* *gd_TextAttr */
{
0, /* gd_CyclePad */
BORDER_GADGET2_ACTIVE, /* gd_CycleActive */
BORDER_GADGET2_TEXT_ARRAY /* *gd_CycleTextArray */
}
}, {
INTUISUP_DATA_END /* mark end of gadget data array */
}
};
/* Defines for text data */
#define TEXT_GADGET1_TYPE GADGET_DATA_TYPE_STRING
#define TEXT_GADGET1_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
#define TEXT_GADGET1_LEFT_EDGE (10 + (4 + 1) * 8)
#define TEXT_GADGET1_TOP_EDGE 20
#define TEXT_GADGET1_WIDTH 100
#define TEXT_GADGET1_HEIGHT 12
#define TEXT_GADGET1_TEXT "_Name"
#define TEXT_GADGET1_TEXT_ATTR &topaz80_attr
#define TEXT_GADGET1_INPUT_LEN MAX_TEMPLATE_NAME_LEN
#define TEXT_GADGET1_INPUT_ACTIVATE ((ULONG)TEXT_GADGET_TEXT << 16 | TEXT_GADGET_FONT)
#define TEXT_GADGET1_INPUT_DEFAULT NULL
#define TEXT_GADGET2_TYPE GADGET_DATA_TYPE_STRING
#define TEXT_GADGET2_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
#define TEXT_GADGET2_LEFT_EDGE TEXT_GADGET1_LEFT_EDGE
#define TEXT_GADGET2_TOP_EDGE (TEXT_GADGET1_TOP_EDGE + TEXT_GADGET1_HEIGHT + 4)
#define TEXT_GADGET2_WIDTH TEXT_GADGET1_WIDTH
#define TEXT_GADGET2_HEIGHT TEXT_GADGET1_HEIGHT
#define TEXT_GADGET2_TEXT "Te_xt"
#define TEXT_GADGET2_TEXT_ATTR &topaz80_attr
#define TEXT_GADGET2_INPUT_LEN MAX_TEXT_LEN
#define TEXT_GADGET2_INPUT_ACTIVATE ((ULONG)TEXT_GADGET_FONT << 16 | TEXT_GADGET_NAME)
#define TEXT_GADGET2_INPUT_DEFAULT NULL
#define TEXT_GADGET3_TYPE GADGET_DATA_TYPE_STRING
#define TEXT_GADGET3_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
#define TEXT_GADGET3_LEFT_EDGE TEXT_GADGET1_LEFT_EDGE
#define TEXT_GADGET3_TOP_EDGE (TEXT_GADGET2_TOP_EDGE + TEXT_GADGET2_HEIGHT + 4)
#define TEXT_GADGET3_WIDTH TEXT_GADGET1_WIDTH
#define TEXT_GADGET3_HEIGHT TEXT_GADGET1_HEIGHT
#define TEXT_GADGET3_TEXT "_Font"
#define TEXT_GADGET3_TEXT_ATTR &topaz80_attr
#define TEXT_GADGET3_INPUT_LEN MAX_TEXT_LEN
#define TEXT_GADGET3_INPUT_ACTIVATE ((ULONG)TEXT_GADGET_NAME << 16 | TEXT_GADGET_TEXT)
#define TEXT_GADGET3_INPUT_DEFAULT NULL
#define TEXT_GADGET4_TYPE GADGET_DATA_TYPE_COUNT
#define TEXT_GADGET4_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_LEFT)
#define TEXT_GADGET4_LEFT_EDGE (TEXT_GADGET5_LEFT_EDGE + TEXT_GADGET5_WIDTH - TEXT_GADGET4_WIDTH)
#define TEXT_GADGET4_TOP_EDGE TEXT_GADGET3_TOP_EDGE
#define TEXT_GADGET4_WIDTH 60
#define TEXT_GADGET4_HEIGHT 12
#define TEXT_GADGET4_TEXT "_Size"
#define TEXT_GADGET4_TEXT_ATTR &topaz80_attr
#define TEXT_GADGET4_COUNT_MIN 5
#define TEXT_GADGET4_COUNT_MAX 200
#define TEXT_GADGET4_COUNT_VALUE NULL
#define TEXT_GADGET5_TYPE GADGET_DATA_TYPE_CYCLE
#define TEXT_GADGET5_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_LEFT)
#define TEXT_GADGET5_TEXT "_Type"
#define TEXT_GADGET5_LEFT_EDGE TEXT_GADGET1_LEFT_EDGE
#define TEXT_GADGET5_TOP_EDGE (TEXT_GADGET3_TOP_EDGE + TEXT_GADGET3_HEIGHT + 4)
#define TEXT_GADGET5_WIDTH (20 + (23 + 2) * 8)
#define TEXT_GADGET5_HEIGHT 15
#define TEXT_GADGET5_TEXT_ATTR &topaz80_attr
#define TEXT_GADGET5_ACTIVE 0
#define TEXT_GADGET5_TEXT_ARRAY &text_type_text_array[0]
#define TEXT_GADGET6_TYPE GADGET_DATA_TYPE_CHECK
#define TEXT_GADGET6_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_RIGHT)
#define TEXT_GADGET6_TEXT "_Bold"
#define TEXT_GADGET6_LEFT_EDGE (TEXT_GADGET5_LEFT_EDGE + TEXT_GADGET5_WIDTH + 40)
#define TEXT_GADGET6_TOP_EDGE TEXT_GADGET1_TOP_EDGE
#define TEXT_GADGET6_WIDTH 0
#define TEXT_GADGET6_HEIGHT 0
#define TEXT_GADGET6_TEXT_ATTR &topaz80_attr
#define TEXT_GADGET7_TYPE GADGET_DATA_TYPE_CHECK
#define TEXT_GADGET7_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_RIGHT)
#define TEXT_GADGET7_TEXT "_Italic"
#define TEXT_GADGET7_LEFT_EDGE TEXT_GADGET6_LEFT_EDGE
#define TEXT_GADGET7_TOP_EDGE (TEXT_GADGET6_TOP_EDGE + 13)
#define TEXT_GADGET7_WIDTH 0
#define TEXT_GADGET7_HEIGHT 0
#define TEXT_GADGET7_TEXT_ATTR &topaz80_attr
#define TEXT_GADGET8_TYPE GADGET_DATA_TYPE_CHECK
#define TEXT_GADGET8_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_RIGHT)
#define TEXT_GADGET8_TEXT "_Underline"
#define TEXT_GADGET8_LEFT_EDGE TEXT_GADGET6_LEFT_EDGE
#define TEXT_GADGET8_TOP_EDGE (TEXT_GADGET7_TOP_EDGE + 13)
#define TEXT_GADGET8_WIDTH 0
#define TEXT_GADGET8_HEIGHT 0
#define TEXT_GADGET8_TEXT_ATTR &topaz80_attr
#define TEXT_GADGET9_TYPE GADGET_DATA_TYPE_CHECK
#define TEXT_GADGET9_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_RIGHT)
#define TEXT_GADGET9_TEXT "Color_2"
#define TEXT_GADGET9_LEFT_EDGE TEXT_GADGET6_LEFT_EDGE
#define TEXT_GADGET9_TOP_EDGE (TEXT_GADGET8_TOP_EDGE + 13)
#define TEXT_GADGET9_WIDTH 0
#define TEXT_GADGET9_HEIGHT 0
#define TEXT_GADGET9_TEXT_ATTR &topaz80_attr
#define TEXT_GADGET10_TYPE GADGET_DATA_TYPE_CHECK
#define TEXT_GADGET10_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_RIGHT)
#define TEXT_GADGET10_TEXT "Co_mplement"
#define TEXT_GADGET10_LEFT_EDGE TEXT_GADGET6_LEFT_EDGE
#define TEXT_GADGET10_TOP_EDGE (TEXT_GADGET9_TOP_EDGE + 13)
#define TEXT_GADGET10_WIDTH 0
#define TEXT_GADGET10_HEIGHT 0
#define TEXT_GADGET10_TEXT_ATTR &topaz80_attr
/* Statics for edit gadgets */
STATIC BYTE *text_type_text_array[] = {
"Text", "Unsigned decimal number", "Signed decimal number", "Hex number",
"Binary number", NULL
};
struct GadgetData text_gadget_data[] = {
{
TEXT_GADGET1_TYPE, /* gd_Type */
TEXT_GADGET1_FLAGS, /* gd_Flags */
TEXT_GADGET1_LEFT_EDGE, /* gd_LeftEdge */
TEXT_GADGET1_TOP_EDGE, /* gd_TopEdge */
TEXT_GADGET1_WIDTH, /* gd_Width */
TEXT_GADGET1_HEIGHT, /* gd_Height */
TEXT_GADGET1_TEXT, /* *gd_Text */
TEXT_GADGET1_TEXT_ATTR, /* *gd_TextAttr */
{
TEXT_GADGET1_INPUT_LEN, /* gd_InputLen */
TEXT_GADGET1_INPUT_ACTIVATE, /* gd_InputActivate */
TEXT_GADGET1_INPUT_DEFAULT /* gd_InputDefault */
}
}, {
TEXT_GADGET2_TYPE, /* gd_Type */
TEXT_GADGET2_FLAGS, /* gd_Flags */
TEXT_GADGET2_LEFT_EDGE, /* gd_LeftEdge */
TEXT_GADGET2_TOP_EDGE, /* gd_TopEdge */
TEXT_GADGET2_WIDTH, /* gd_Width */
TEXT_GADGET2_HEIGHT, /* gd_Height */
TEXT_GADGET2_TEXT, /* *gd_Text */
TEXT_GADGET2_TEXT_ATTR, /* *gd_TextAttr */
{
TEXT_GADGET2_INPUT_LEN, /* gd_InputLen */
TEXT_GADGET2_INPUT_ACTIVATE, /* gd_InputActivate */
TEXT_GADGET2_INPUT_DEFAULT /* gd_InputDefault */
}
}, {
TEXT_GADGET3_TYPE, /* gd_Type */
TEXT_GADGET3_FLAGS, /* gd_Flags */
TEXT_GADGET3_LEFT_EDGE, /* gd_LeftEdge */
TEXT_GADGET3_TOP_EDGE, /* gd_TopEdge */
TEXT_GADGET3_WIDTH, /* gd_Width */
TEXT_GADGET3_HEIGHT, /* gd_Height */
TEXT_GADGET3_TEXT, /* *gd_Text */
TEXT_GADGET3_TEXT_ATTR, /* *gd_TextAttr */
{
TEXT_GADGET3_INPUT_LEN, /* gd_InputLen */
TEXT_GADGET3_INPUT_ACTIVATE, /* gd_InputActivate */
TEXT_GADGET3_INPUT_DEFAULT /* gd_InputDefault */
}
}, {
TEXT_GADGET4_TYPE, /* gd_Type */
TEXT_GADGET4_FLAGS, /* gd_Flags */
TEXT_GADGET4_LEFT_EDGE, /* gd_LeftEdge */
TEXT_GADGET4_TOP_EDGE, /* gd_TopEdge */
TEXT_GADGET4_WIDTH, /* gd_Width */
TEXT_GADGET4_HEIGHT, /* gd_Height */
TEXT_GADGET4_TEXT, /* *gd_Text */
TEXT_GADGET4_TEXT_ATTR, /* *gd_TextAttr */
{
TEXT_GADGET4_COUNT_MIN, /* gd_CountMin */
TEXT_GADGET4_COUNT_MAX, /* gd_CountMax */
TEXT_GADGET4_COUNT_VALUE /* gd_CountValue */
}
}, {
TEXT_GADGET5_TYPE, /* gd_Type */
TEXT_GADGET5_FLAGS, /* gd_Flags */
TEXT_GADGET5_LEFT_EDGE, /* gd_LeftEdge */
TEXT_GADGET5_TOP_EDGE, /* gd_TopEdge */
TEXT_GADGET5_WIDTH, /* gd_Width */
TEXT_GADGET5_HEIGHT, /* gd_Height */
TEXT_GADGET5_TEXT, /* *gd_Text */
TEXT_GADGET5_TEXT_ATTR, /* *gd_TextAttr */
{
0, /* gd_CyclePad */
TEXT_GADGET5_ACTIVE, /* gd_CycleActive */
TEXT_GADGET5_TEXT_ARRAY /* *gd_CycleTextArray */
}
}, {
TEXT_GADGET6_TYPE, /* gd_Type */
TEXT_GADGET6_FLAGS, /* gd_Flags */
TEXT_GADGET6_LEFT_EDGE, /* gd_LeftEdge */
TEXT_GADGET6_TOP_EDGE, /* gd_TopEdge */
TEXT_GADGET6_WIDTH, /* gd_Width */
TEXT_GADGET6_HEIGHT, /* gd_Height */
TEXT_GADGET6_TEXT, /* *gd_Text */
TEXT_GADGET6_TEXT_ATTR, /* *gd_TextAttr */
{ 0, 0, 0 }
}, {
TEXT_GADGET7_TYPE, /* gd_Type */
TEXT_GADGET7_FLAGS, /* gd_Flags */
TEXT_GADGET7_LEFT_EDGE, /* gd_LeftEdge */
TEXT_GADGET7_TOP_EDGE, /* gd_TopEdge */
TEXT_GADGET7_WIDTH, /* gd_Width */
TEXT_GADGET7_HEIGHT, /* gd_Height */
TEXT_GADGET7_TEXT, /* *gd_Text */
TEXT_GADGET7_TEXT_ATTR, /* *gd_TextAttr */
{ 0, 0, 0 }
}, {
TEXT_GADGET8_TYPE, /* gd_Type */
TEXT_GADGET8_FLAGS, /* gd_Flags */
TEXT_GADGET8_LEFT_EDGE, /* gd_LeftEdge */
TEXT_GADGET8_TOP_EDGE, /* gd_TopEdge */
TEXT_GADGET8_WIDTH, /* gd_Width */
TEXT_GADGET8_HEIGHT, /* gd_Height */
TEXT_GADGET8_TEXT, /* *gd_Text */
TEXT_GADGET8_TEXT_ATTR, /* *gd_TextAttr */
{ 0, 0, 0 }
}, {
TEXT_GADGET9_TYPE, /* gd_Type */
TEXT_GADGET9_FLAGS, /* gd_Flags */
TEXT_GADGET9_LEFT_EDGE, /* gd_LeftEdge */
TEXT_GADGET9_TOP_EDGE, /* gd_TopEdge */
TEXT_GADGET9_WIDTH, /* gd_Width */
TEXT_GADGET9_HEIGHT, /* gd_Height */
TEXT_GADGET9_TEXT, /* *gd_Text */
TEXT_GADGET9_TEXT_ATTR, /* *gd_TextAttr */
{ 0, 0, 0 }
}, {
TEXT_GADGET10_TYPE, /* gd_Type */
TEXT_GADGET10_FLAGS, /* gd_Flags */
TEXT_GADGET10_LEFT_EDGE, /* gd_LeftEdge */
TEXT_GADGET10_TOP_EDGE, /* gd_TopEdge */
TEXT_GADGET10_WIDTH, /* gd_Width */
TEXT_GADGET10_HEIGHT, /* gd_Height */
TEXT_GADGET10_TEXT, /* *gd_Text */
TEXT_GADGET10_TEXT_ATTR, /* *gd_TextAttr */
{ 0, 0, 0 }
}, {
INTUISUP_DATA_END /* mark end of gadget data array */
}
};
/* Defines for normal gadget data */
#define NORMAL_GADGET1_TYPE GADGET_DATA_TYPE_STRING
#define NORMAL_GADGET1_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
#define NORMAL_GADGET1_LEFT_EDGE (10 + (4 + 1) * 8)
#define NORMAL_GADGET1_TOP_EDGE 20
#define NORMAL_GADGET1_WIDTH 100
#define NORMAL_GADGET1_HEIGHT 12
#define NORMAL_GADGET1_TEXT "_Name"
#define NORMAL_GADGET1_TEXT_ATTR &topaz80_attr
#define NORMAL_GADGET1_INPUT_LEN MAX_TEMPLATE_NAME_LEN
#define NORMAL_GADGET1_INPUT_ACTIVATE ((ULONG)NORMAL_GADGET_TEXT << 16 | NORMAL_GADGET_FONT)
#define NORMAL_GADGET1_INPUT_DEFAULT NULL
#define NORMAL_GADGET2_TYPE GADGET_DATA_TYPE_STRING
#define NORMAL_GADGET2_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
#define NORMAL_GADGET2_LEFT_EDGE NORMAL_GADGET1_LEFT_EDGE
#define NORMAL_GADGET2_TOP_EDGE (NORMAL_GADGET1_TOP_EDGE + NORMAL_GADGET1_HEIGHT + 4)
#define NORMAL_GADGET2_WIDTH NORMAL_GADGET1_WIDTH
#define NORMAL_GADGET2_HEIGHT NORMAL_GADGET1_HEIGHT
#define NORMAL_GADGET2_TEXT "Te_xt"
#define NORMAL_GADGET2_TEXT_ATTR &topaz80_attr
#define NORMAL_GADGET2_INPUT_LEN MAX_TEXT_LEN
#define NORMAL_GADGET2_INPUT_ACTIVATE ((ULONG)NORMAL_GADGET_FONT << 16 | NORMAL_GADGET_NAME)
#define NORMAL_GADGET2_INPUT_DEFAULT NULL
#define NORMAL_GADGET3_TYPE GADGET_DATA_TYPE_STRING
#define NORMAL_GADGET3_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
#define NORMAL_GADGET3_LEFT_EDGE NORMAL_GADGET1_LEFT_EDGE
#define NORMAL_GADGET3_TOP_EDGE (NORMAL_GADGET2_TOP_EDGE + NORMAL_GADGET2_HEIGHT + 4)
#define NORMAL_GADGET3_WIDTH NORMAL_GADGET1_WIDTH
#define NORMAL_GADGET3_HEIGHT NORMAL_GADGET1_HEIGHT
#define NORMAL_GADGET3_TEXT "_Font"
#define NORMAL_GADGET3_TEXT_ATTR &topaz80_attr
#define NORMAL_GADGET3_INPUT_LEN MAX_TEXT_LEN
#define NORMAL_GADGET3_INPUT_ACTIVATE ((ULONG)NORMAL_GADGET_NAME << 16 | NORMAL_GADGET_TEXT)
#define NORMAL_GADGET3_INPUT_DEFAULT NULL
#define NORMAL_GADGET4_TYPE GADGET_DATA_TYPE_COUNT
#define NORMAL_GADGET4_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_LEFT)
#define NORMAL_GADGET4_LEFT_EDGE (NORMAL_GADGET5_LEFT_EDGE + NORMAL_GADGET5_WIDTH - NORMAL_GADGET4_WIDTH)
#define NORMAL_GADGET4_TOP_EDGE NORMAL_GADGET3_TOP_EDGE
#define NORMAL_GADGET4_WIDTH 60
#define NORMAL_GADGET4_HEIGHT 12
#define NORMAL_GADGET4_TEXT "_Size"
#define NORMAL_GADGET4_TEXT_ATTR &topaz80_attr
#define NORMAL_GADGET4_COUNT_MIN 5
#define NORMAL_GADGET4_COUNT_MAX 200
#define NORMAL_GADGET4_COUNT_VALUE NULL
#define NORMAL_GADGET5_TYPE GADGET_DATA_TYPE_CYCLE
#define NORMAL_GADGET5_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_LEFT)
#define NORMAL_GADGET5_TEXT "_Pos"
#define NORMAL_GADGET5_LEFT_EDGE NORMAL_GADGET1_LEFT_EDGE
#define NORMAL_GADGET5_TOP_EDGE (NORMAL_GADGET3_TOP_EDGE + NORMAL_GADGET3_HEIGHT + 4)
#define NORMAL_GADGET5_WIDTH (20 + (23 + 2) * 8)
#define NORMAL_GADGET5_HEIGHT 15
#define NORMAL_GADGET5_TEXT_ATTR &topaz80_attr
#define NORMAL_GADGET5_ACTIVE 0
#define NORMAL_GADGET5_TEXT_ARRAY &normal_text_pos_text_array[0]
#define NORMAL_GADGET6_TYPE GADGET_DATA_TYPE_CHECK
#define NORMAL_GADGET6_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_RIGHT)
#define NORMAL_GADGET6_TEXT "Dis_abled"
#define NORMAL_GADGET6_LEFT_EDGE (NORMAL_GADGET5_LEFT_EDGE + NORMAL_GADGET5_WIDTH + 40)
#define NORMAL_GADGET6_TOP_EDGE NORMAL_GADGET1_TOP_EDGE
#define NORMAL_GADGET6_WIDTH 0
#define NORMAL_GADGET6_HEIGHT 0
#define NORMAL_GADGET6_TEXT_ATTR &topaz80_attr
#define NORMAL_GADGET7_TYPE GADGET_DATA_TYPE_CHECK
#define NORMAL_GADGET7_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_RIGHT)
#define NORMAL_GADGET7_TEXT "No _Border"
#define NORMAL_GADGET7_LEFT_EDGE NORMAL_GADGET6_LEFT_EDGE
#define NORMAL_GADGET7_TOP_EDGE (NORMAL_GADGET6_TOP_EDGE + 13)
#define NORMAL_GADGET7_WIDTH 0
#define NORMAL_GADGET7_HEIGHT 0
#define NORMAL_GADGET7_TEXT_ATTR &topaz80_attr
#define NORMAL_GADGET8_TYPE GADGET_DATA_TYPE_CHECK
#define NORMAL_GADGET8_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_RIGHT)
#define NORMAL_GADGET8_TEXT "_High Comp"
#define NORMAL_GADGET8_LEFT_EDGE NORMAL_GADGET6_LEFT_EDGE
#define NORMAL_GADGET8_TOP_EDGE (NORMAL_GADGET7_TOP_EDGE + 13)
#define NORMAL_GADGET8_WIDTH 0
#define NORMAL_GADGET8_HEIGHT 0
#define NORMAL_GADGET8_TEXT_ATTR &topaz80_attr
#define NORMAL_GADGET9_TYPE GADGET_DATA_TYPE_CHECK
#define NORMAL_GADGET9_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_RIGHT)
#define NORMAL_GADGET9_TEXT "Hot _Key"
#define NORMAL_GADGET9_LEFT_EDGE NORMAL_GADGET6_LEFT_EDGE
#define NORMAL_GADGET9_TOP_EDGE (NORMAL_GADGET8_TOP_EDGE + 13)
#define NORMAL_GADGET9_WIDTH 0
#define NORMAL_GADGET9_HEIGHT 0
#define NORMAL_GADGET9_TEXT_ATTR &topaz80_attr
#define NORMAL_GADGET10_TYPE GADGET_DATA_TYPE_CHECK
#define NORMAL_GADGET10_FLAGS (GADGET_DATA_FLAG_HOT_KEY | GADGET_DATA_FLAG_TEXT_RIGHT)
#define NORMAL_GADGET10_TEXT "Color _2"
#define NORMAL_GADGET10_LEFT_EDGE NORMAL_GADGET6_LEFT_EDGE
#define NORMAL_GADGET10_TOP_EDGE (NORMAL_GADGET9_TOP_EDGE + 13)
#define NORMAL_GADGET10_WIDTH 0
#define NORMAL_GADGET10_HEIGHT 0
#define NORMAL_GADGET10_TEXT_ATTR &topaz80_attr
/* Statics for normal gadgets */
STATIC BYTE *normal_text_pos_text_array[] = {
"Left of Select Box", "Right of Select Box", "Above the Select Box",
"Below the Select Box", "Inside of Select Box", NULL
};
struct GadgetData normal_gadget_data[] = {
{
NORMAL_GADGET1_TYPE, /* gd_Type */
NORMAL_GADGET1_FLAGS, /* gd_Flags */
NORMAL_GADGET1_LEFT_EDGE, /* gd_LeftEdge */
NORMAL_GADGET1_TOP_EDGE, /* gd_TopEdge */
NORMAL_GADGET1_WIDTH, /* gd_Width */
NORMAL_GADGET1_HEIGHT, /* gd_Height */
NORMAL_GADGET1_TEXT, /* *gd_Text */
NORMAL_GADGET1_TEXT_ATTR, /* *gd_TextAttr */
{
NORMAL_GADGET1_INPUT_LEN, /* gd_InputLen */
NORMAL_GADGET1_INPUT_ACTIVATE, /* gd_InputActivate */
NORMAL_GADGET1_INPUT_DEFAULT /* gd_InputDefault */
}
}, {
NORMAL_GADGET2_TYPE, /* gd_Type */
NORMAL_GADGET2_FLAGS, /* gd_Flags */
NORMAL_GADGET2_LEFT_EDGE, /* gd_LeftEdge */
NORMAL_GADGET2_TOP_EDGE, /* gd_TopEdge */
NORMAL_GADGET2_WIDTH, /* gd_Width */
NORMAL_GADGET2_HEIGHT, /* gd_Height */
NORMAL_GADGET2_TEXT, /* *gd_Text */
NORMAL_GADGET2_TEXT_ATTR, /* *gd_TextAttr */
{
NORMAL_GADGET2_INPUT_LEN, /* gd_InputLen */
NORMAL_GADGET2_INPUT_ACTIVATE, /* gd_InputActivate */
NORMAL_GADGET2_INPUT_DEFAULT /* gd_InputDefault */
}
}, {
NORMAL_GADGET3_TYPE, /* gd_Type */
NORMAL_GADGET3_FLAGS, /* gd_Flags */
NORMAL_GADGET3_LEFT_EDGE, /* gd_LeftEdge */
NORMAL_GADGET3_TOP_EDGE, /* gd_TopEdge */
NORMAL_GADGET3_WIDTH, /* gd_Width */
NORMAL_GADGET3_HEIGHT, /* gd_Height */
NORMAL_GADGET3_TEXT, /* *gd_Text */
NORMAL_GADGET3_TEXT_ATTR, /* *gd_TextAttr */
{
NORMAL_GADGET3_INPUT_LEN, /* gd_InputLen */
NORMAL_GADGET3_INPUT_ACTIVATE, /* gd_InputActivate */
NORMAL_GADGET3_INPUT_DEFAULT /* gd_InputDefault */
}
}, {
NORMAL_GADGET4_TYPE, /* gd_Type */
NORMAL_GADGET4_FLAGS, /* gd_Flags */
NORMAL_GADGET4_LEFT_EDGE, /* gd_LeftEdge */
NORMAL_GADGET4_TOP_EDGE, /* gd_TopEdge */
NORMAL_GADGET4_WIDTH, /* gd_Width */
NORMAL_GADGET4_HEIGHT, /* gd_Height */
NORMAL_GADGET4_TEXT, /* *gd_Text */
NORMAL_GADGET4_TEXT_ATTR, /* *gd_TextAttr */
{
NORMAL_GADGET4_COUNT_MIN, /* gd_CountMin */
NORMAL_GADGET4_COUNT_MAX, /* gd_CountMax */
NORMAL_GADGET4_COUNT_VALUE /* gd_CountValue */
}
}, {
NORMAL_GADGET5_TYPE, /* gd_Type */
NORMAL_GADGET5_FLAGS, /* gd_Flags */
NORMAL_GADGET5_LEFT_EDGE, /* gd_LeftEdge */
NORMAL_GADGET5_TOP_EDGE, /* gd_TopEdge */
NORMAL_GADGET5_WIDTH, /* gd_Width */
NORMAL_GADGET5_HEIGHT, /* gd_Height */
NORMAL_GADGET5_TEXT, /* *gd_Text */
NORMAL_GADGET5_TEXT_ATTR, /* *gd_TextAttr */
{
0, /* gd_CyclePad */
NORMAL_GADGET5_ACTIVE, /* gd_CycleActive */
NORMAL_GADGET5_TEXT_ARRAY /* *gd_CycleTextArray */
}
}, {
NORMAL_GADGET6_TYPE, /* gd_Type */
NORMAL_GADGET6_FLAGS, /* gd_Flags */
NORMAL_GADGET6_LEFT_EDGE, /* gd_LeftEdge */
NORMAL_GADGET6_TOP_EDGE, /* gd_TopEdge */
NORMAL_GADGET6_WIDTH, /* gd_Width */
NORMAL_GADGET6_HEIGHT, /* gd_Height */
NORMAL_GADGET6_TEXT, /* *gd_Text */
NORMAL_GADGET6_TEXT_ATTR, /* *gd_TextAttr */
{ 0, 0, 0 }
}, {
NORMAL_GADGET7_TYPE, /* gd_Type */
NORMAL_GADGET7_FLAGS, /* gd_Flags */
NORMAL_GADGET7_LEFT_EDGE, /* gd_LeftEdge */
NORMAL_GADGET7_TOP_EDGE, /* gd_TopEdge */
NORMAL_GADGET7_WIDTH, /* gd_Width */
NORMAL_GADGET7_HEIGHT, /* gd_Height */
NORMAL_GADGET7_TEXT, /* *gd_Text */
NORMAL_GADGET7_TEXT_ATTR, /* *gd_TextAttr */
{ 0, 0, 0 }
}, {
NORMAL_GADGET8_TYPE, /* gd_Type */
NORMAL_GADGET8_FLAGS, /* gd_Flags */
NORMAL_GADGET8_LEFT_EDGE, /* gd_LeftEdge */
NORMAL_GADGET8_TOP_EDGE, /* gd_TopEdge */
NORMAL_GADGET8_WIDTH, /* gd_Width */
NORMAL_GADGET8_HEIGHT, /* gd_Height */
NORMAL_GADGET8_TEXT, /* *gd_Text */
NORMAL_GADGET8_TEXT_ATTR, /* *gd_TextAttr */
{ 0, 0, 0 }
}, {
NORMAL_GADGET9_TYPE, /* gd_Type */
NORMAL_GADGET9_FLAGS, /* gd_Flags */
NORMAL_GADGET9_LEFT_EDGE, /* gd_LeftEdge */
NORMAL_GADGET9_TOP_EDGE, /* gd_TopEdge */
NORMAL_GADGET9_WIDTH, /* gd_Width */
NORMAL_GADGET9_HEIGHT, /* gd_Height */
NORMAL_GADGET9_TEXT, /* *gd_Text */
NORMAL_GADGET9_TEXT_ATTR, /* *gd_TextAttr */
{ 0, 0, 0 }
}, {
NORMAL_GADGET10_TYPE, /* gd_Type */
NORMAL_GADGET10_FLAGS, /* gd_Flags */
NORMAL_GADGET10_LEFT_EDGE, /* gd_LeftEdge */
NORMAL_GADGET10_TOP_EDGE, /* gd_TopEdge */
NORMAL_GADGET10_WIDTH, /* gd_Width */
NORMAL_GADGET10_HEIGHT, /* gd_Height */
NORMAL_GADGET10_TEXT, /* *gd_Text */
NORMAL_GADGET10_TEXT_ATTR, /* *gd_TextAttr */
{ 0, 0, 0 }
}, {
INTUISUP_DATA_END /* mark end of gadget data array */
}
};
/* Edit template data */
SHORT
edit_template_data(VOID)
{
struct Template *tp = selected_template;
struct BorderData *bd;
struct TextData *td;
struct GadgetData *gd, *gd1, *gd2, *gd3;
APTR gl1, gl2, gl3, gl4;
ULONG flags;
SHORT status;
/* Init normal and special gadget data */
switch (TEMPLATE_GROUP(tp)) {
case TEMPLATE_GROUP_BORDER :
bd = &tp->tp_Data.tp_BorderData;
gd1 = &border_gadget_data[0];
gd2 = NULL;
gd3 = NULL;
/* Init normal gadget data */
(gd1 + BORDER_GADGET_NAME)->gd_SpecialData.gd_InputData.gd_InputDefault = &tp->tp_TemplateName[0];
(gd1 + BORDER_GADGET_TYPE)->gd_SpecialData.gd_CycleData.gd_CycleActive = bd->bd_Type - 1;
break;
case TEMPLATE_GROUP_TEXT :
td = &tp->tp_Data.tp_TextData;
gd1 = &text_gadget_data[0];
gd2 = NULL;
gd3 = NULL;
flags = td->td_Flags;
/* Init normal gadget data */
(gd1 + TEXT_GADGET_NAME)->gd_SpecialData.gd_InputData.gd_InputDefault = &tp->tp_TemplateName[0];
(gd1 + TEXT_GADGET_TEXT)->gd_SpecialData.gd_InputData.gd_InputDefault = td->td_Text;
(gd1 + TEXT_GADGET_TEXT)->gd_Flags &= ~(GADGET_DATA_FLAG_STRING_UNSIGNED_DEC | GADGET_DATA_FLAG_STRING_SIGNED_DEC | GADGET_DATA_FLAG_STRING_HEX | GADGET_DATA_FLAG_STRING_BIN);
switch (td->td_Type) {
case TEXT_DATA_TYPE_NUM_UNSIGNED_DEC :
(gd1 + TEXT_GADGET_TEXT)->gd_Flags |= GADGET_DATA_FLAG_STRING_UNSIGNED_DEC;
break;
case TEXT_DATA_TYPE_NUM_SIGNED_DEC :
(gd1 + TEXT_GADGET_TEXT)->gd_Flags |= GADGET_DATA_FLAG_STRING_SIGNED_DEC;
break;
case TEXT_DATA_TYPE_NUM_HEX :
(gd1 + TEXT_GADGET_TEXT)->gd_Flags |= GADGET_DATA_FLAG_STRING_HEX;
break;
case TEXT_DATA_TYPE_NUM_BIN :
(gd1 + TEXT_GADGET_TEXT)->gd_Flags |= GADGET_DATA_FLAG_STRING_BIN;
break;
}
(gd1 + TEXT_GADGET_FONT)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *)tp->tp_TextAttr.ta_Name;
(gd1 + TEXT_GADGET_SIZE)->gd_SpecialData.gd_CountData.gd_CountValue = tp->tp_TextAttr.ta_YSize;
(gd1 + TEXT_GADGET_TYPE)->gd_SpecialData.gd_CycleData.gd_CycleActive = td->td_Type - 1;
(gd1 + TEXT_GADGET_BOLD)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & TEXT_DATA_FLAG_BOLD ? 1 : 0);
(gd1 + TEXT_GADGET_ITALIC)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & TEXT_DATA_FLAG_ITALIC ? 1 : 0);
(gd1 + TEXT_GADGET_UNDERLINED)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & TEXT_DATA_FLAG_UNDERLINED ? 1 : 0);
(gd1 + TEXT_GADGET_COLOR2)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & TEXT_DATA_FLAG_COLOR2 ? 1 : 0);
(gd1 + TEXT_GADGET_COMPLEMENT)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & TEXT_DATA_FLAG_COMPLEMENT ? 1 : 0);
break;
case TEMPLATE_GROUP_GADGET :
gd = &tp->tp_Data.tp_GadgetData;
gd1 = &normal_gadget_data[0];
flags = gd->gd_Flags;
/* Init normal gadget data */
(gd1 + NORMAL_GADGET_NAME)->gd_SpecialData.gd_InputData.gd_InputDefault = &tp->tp_TemplateName[0];
(gd1 + NORMAL_GADGET_TEXT)->gd_SpecialData.gd_InputData.gd_InputDefault = gd->gd_Text;
(gd1 + NORMAL_GADGET_FONT)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *)tp->tp_TextAttr.ta_Name;
(gd1 + NORMAL_GADGET_SIZE)->gd_SpecialData.gd_CountData.gd_CountValue = tp->tp_TextAttr.ta_YSize;
switch (GADGET_TEXT_POS_MASK(gd->gd_Flags)) {
case GADGET_DATA_FLAG_TEXT_LEFT :
(gd1 + NORMAL_GADGET_POS)->gd_SpecialData.gd_CycleData.gd_CycleActive = TEXT_POS_LEFT;
break;
case GADGET_DATA_FLAG_TEXT_RIGHT :
(gd1 + NORMAL_GADGET_POS)->gd_SpecialData.gd_CycleData.gd_CycleActive = TEXT_POS_RIGHT;
break;
case GADGET_DATA_FLAG_TEXT_ABOVE :
(gd1 + NORMAL_GADGET_POS)->gd_SpecialData.gd_CycleData.gd_CycleActive = TEXT_POS_ABOVE;
break;
case GADGET_DATA_FLAG_TEXT_BELOW :
(gd1 + NORMAL_GADGET_POS)->gd_SpecialData.gd_CycleData.gd_CycleActive = TEXT_POS_BELOW;
break;
default :
(gd1 + NORMAL_GADGET_POS)->gd_SpecialData.gd_CycleData.gd_CycleActive = TEXT_POS_INSIDE;
break;
}
(gd1 + NORMAL_GADGET_DISABLED)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & GADGET_DATA_FLAG_DISABLED ? 1 : 0);
(gd1 + NORMAL_GADGET_NO_BORDER)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & GADGET_DATA_FLAG_NO_BORDER ? 1 : 0);
(gd1 + NORMAL_GADGET_HIGHCOMP)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & GADGET_DATA_FLAG_HIGH_COMP ? 1 : 0);
(gd1 + NORMAL_GADGET_HOTKEY)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & GADGET_DATA_FLAG_HOT_KEY ? 1 : 0);
(gd1 + NORMAL_GADGET_COLOR2)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & GADGET_DATA_FLAG_TEXT_COLOR2 ? 1 : 0);
/* Init special gadget data */
switch (gd->gd_Type) {
case GADGET_DATA_TYPE_BUTTON :
case GADGET_DATA_TYPE_CHECK :
gd2 = NULL;
gd3 = NULL;
break;
case GADGET_DATA_TYPE_MX :
gd2 = &list_gadget_data[0];
gd3 = NULL;
break;
case GADGET_DATA_TYPE_STRING :
gd2 = NULL;
gd3 = NULL;
break;
case GADGET_DATA_TYPE_INTEGER :
gd2 = NULL;
gd3 = NULL;
break;
case GADGET_DATA_TYPE_SLIDER :
gd2 = NULL;
gd3 = NULL;
break;
case GADGET_DATA_TYPE_SCROLLER :
gd2 = NULL;
gd3 = NULL;
break;
case GADGET_DATA_TYPE_CYCLE :
gd2 = &list_gadget_data[0];
gd3 = NULL;
break;
case GADGET_DATA_TYPE_COUNT :
gd2 = NULL;
gd3 = NULL;
break;
case GADGET_DATA_TYPE_LISTVIEW :
gd2 = &list_gadget_data[0];
gd3 = NULL;
break;
case GADGET_DATA_TYPE_PALETTE :
gd2 = NULL;
gd3 = NULL;
break;
}
break;
}
/* If special gadget data needed then enable 'SWITCH' gadget */
if (gd2 || gd3) {
edit_gadget_data[EDIT_GADGET_SWITCH].gd_Flags &= ~GADGET_DATA_FLAG_DISABLED;
gl2 = NULL;
gl3 = NULL;
} else {
edit_gadget_data[EDIT_GADGET_SWITCH].gd_Flags |= GADGET_DATA_FLAG_DISABLED;
}
/* Create gadget lists */
if (!(gl1 = ICreateGadgets(eri, gd1, 0, 0))) {
status = EDITOR_ERROR_OUT_OF_MEM;
} else {
if (gd2 && !(gl2 = ICreateGadgets(eri, gd2, 0, 0))) {
status = EDITOR_ERROR_OUT_OF_MEM;
} else {
if (gd3 && !(gl3 = ICreateGadgets(eri, gd3, 0, 0))) {
status = EDITOR_ERROR_OUT_OF_MEM;
} else {
if (!(gl4 = ICreateGadgets(eri, &edit_gadget_data[0], 0, 0))) {
status = EDITOR_ERROR_OUT_OF_MEM;
} else {
status = edit_template_data_action(tp, gl1, gl2, gl3, gl4);
IFreeGadgets(gl4);
}
if (gd3) {
IFreeGadgets(gl3);
}
}
if (gd2) {
IFreeGadgets(gl2);
}
}
IFreeGadgets(gl1);
}
show_error(status);
MWCheck();
return(status);
}